#ifndef __EVENT_MANAGEMENT_H
#define __EVENT_MANAGEMENT_H
#include "System_init.h"
#include "def.h"
/* 支持最大的事件数量 */
#define   TIMER_EVENT_MAX       20
typedef void (*EventCb)(void);


typedef enum {
	False = 0,
	Ture = 1
}TureOrFalse;


typedef enum {
  EVENT_INVALID = 0,
  EVENT_STOP,
  EVENT_RUNNING,
  EVENT_EXECUTE
}EventState;


typedef struct {
  u8					TimerID;
  u32    			Timeout;
  EventState  State;
  EventCb     CB;
}TimerEvent;



/* 创建事件 */
void CreatEventTimer(u8 *TimerID,EventCb Callback);
/* 停止事件计时 */
void StopEventTimer(u8 TimerID);
/* 立刻执行事件 */
void StartEventTimer(u8 TimerID);
/* 设置时间定时器时间 */
void SetEventTimerTimeout(u8 TimerID,u32 CountMs);
/* 更新时间，在主循环中一直扫描 */
void UpdateTimerTick(u32 new_time);



EventState GetEventTimerState(u8 TimerID);



#endif /* USERCODE_USEREVENTSCHEDULE_H_ */
